<?php

/**
 * Acreditacion form.
 *
 * @package    BecArTe
 * @subpackage form
 * @author     Your name here
 * @version    SVN: $Id: sfDoctrineFormTemplate.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class AcreditacionForm extends BaseAcreditacionForm
{
  public function configure()
  {
  }
  
  protected function setupInheritance()
  {
    parent::setupInheritance();
    $this->useFields( $this->getUsefullFields() );
    if(!$this->isNew()) {
      $this->widgetSchema['borrar'] = new sfWidgetFormInputCheckbox(array(
               'label' => 'Eliminar presentación'
      )); 
      $this->validatorSchema['borrar'] = new sfValidatorBoolean(array(
               'required' => false
      )); 
    }
  }
 
  /* column_agreggation es la forma más interesante de herencia en doctrine
   * Pero los formularios quedan todos iguales, no son específicos por cada
   * subclase..
   * Retorno los campos que interesan a todas acá, las subclases harán
   * array_merge(parent::getUsefullFields, array('campos de la subclase'))*/
  protected function getUsefullFields()
  {
	  $camposAMostrarEnTodasLasSubclases =
        ($this->isNew() || sfContext::getInstance()->getUser()->hasCredential('aspirante'))
        ? array() 
        : array('valido');
	  return $camposAMostrarEnTodasLasSubclases;
  }
  
  /* le pone al widget de interes para esa acreditacion
   * un label y help adecuado segun el requisito */
  protected function configurarWidget($nombre)
  {
    $requisito = $this->getObject()->getRequisito();
    $this->widgetSchema[$nombre]->setOption(
        'label', $requisito->getNombre()
    );
    $this->widgetSchema->setHelp(
        $nombre,$requisito->getDescripcion()
    );
    //como estos forms se manejan embebidos
    //cuando es un form nuevo los valores no son
    //obligatorios (por si presentas otro)
    $this->validatorSchema[$nombre]->setOption(
          'required', !$this->isNew()
    );
 }
}
